/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upc.clase.demo.dao.impl;

import edu.upc.clase.demo.dao.DetallePedidoDao;
import edu.upc.clase.demo.entity.DetallePedido;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.stereotype.Repository;

/**
 *
 * @author SP43791044
 */
@Repository
public class DetallePedidoDaoImpl extends JdbcDaoSupport implements DetallePedidoDao{
    @Autowired
    public DetallePedidoDaoImpl(DataSource dataSource) {
        setDataSource(dataSource);
     }
    @Override
    public Integer insertar(DetallePedido detallePedido) {
        getJdbcTemplate().update(
                "insert into detallePedido (idLocalMenuHorario,idPedido,cantidadMenu,precioUnitario,estadoDetallePedido) values (?, ?, ?, ?, ?)",
                detallePedido.getIdLocalMenuHorario(), detallePedido.getIdPedido(), detallePedido.getCantidadMenu(),detallePedido.getPrecioUnitario(),detallePedido.getEstadoDetallePedido());
        return getJdbcTemplate().queryForInt("select last_insert_id()");
    }

    @Override
    public void actualizar(DetallePedido detallePedido) {
        getJdbcTemplate().update(
                "update detallePedido set idLocalMenuHorario=? , idPedido=? , cantidadMenu=? , precioUnitario=? , estadoDetallePedido=? where idDetallePedido=?",
                detallePedido.getIdLocalMenuHorario(), detallePedido.getIdPedido(), detallePedido.getCantidadMenu(),detallePedido.getPrecioUnitario(),detallePedido.getEstadoDetallePedido(),detallePedido.getIdDetallePedido());
    }

    @Override
    public void eliminar(DetallePedido detallePedido) {
        getJdbcTemplate().update(
                "delete from detallePedido where idDetallePedido = ?",
                detallePedido.getIdDetallePedido());
    }

    @Override
    public List<DetallePedido> buscarTodos(Integer idPedido) {
        return getJdbcTemplate().query(
                "select idDetallePedido,idLocalMenuHorario,idPedido,cantidadMenu,precioUnitario,estadoDetallePedido from detallePedido where idPedido=?",
                new BeanPropertyRowMapper<DetallePedido>(DetallePedido.class),idPedido);
    }

    @Override
    public DetallePedido buscar(Integer idDetallePedido) {
        try {
            return getJdbcTemplate().queryForObject(
                    "select idDetallePedido,idLocalMenuHorario,idPedido,cantidadMenu,precioUnitario,estadoDetallePedido from detallePedido where idDetallePedido=?",
                    new BeanPropertyRowMapper<DetallePedido>(DetallePedido.class), idDetallePedido);
        } catch (Exception e) {
            return null;
        }
    }

    
    
}